import axios from 'axios'
import Qs from 'qs'
import VueCookies from 'vue-cookies'

const AxiosIns = axios.create({
    baseURL:"https://fav.semei.net/BookApi",
    timeout:3000,
    headers:{
        // 'Authorization':AUTH_TOKEN,
        'Content-Type': 'application/x-www-form-urlencoded'
    },
    transformRequest: [function (data) {
        // 对发送的 data 进行任意转换处理
        if(data instanceof FormData) return data;
        if(data instanceof URLSearchParams) return data;
        return Qs.stringify(data);
    }],

})

// 添加请求拦截器
AxiosIns.interceptors.request.use(function (config) {
    // 在发送请求之前做些什么
    if(VueCookies.isKey('Authorization')) {
        config.headers.Authorization = VueCookies.get('Authorization')
    }
    return config;
}, function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
});

// 添加响应拦截器
AxiosIns.interceptors.response.use(function (response) {
    // 2xx 范围内的状态码都会触发该函数。
    // 对响应数据做点什么
    const {data:{
        ret,
        data,
        msg
    }} = response;
    if(ret === 200){
        return Promise.resolve(data)
    }else{
        if(ret === 300 && msg === '未登陆') {
            location.hash="#/login"
        }
        return Promise.reject(msg)
    }
}, function (error) {
    // 超出 2xx 范围的状态码都会触发该函数。
    // 对响应错误做点什么
    return Promise.reject(error);
});

export default AxiosIns